//vue.config.js
const TransformPages = require('uni-read-pages')
const {
	webpack
} = new TransformPages()
const CompressionWebpackPlugin = require('compression-webpack-plugin')
module.exports = {
    filenameHashing: false,
    css: {
        extract: true
    },
    /*是否开启代理转发*/
    devServer: {
        https: false,
        proxy: {
            "/api": {
                target: "http://linan.teamhonor.cn",
                changeOrigin: true,
                //设置logLevel,将打印转发日志
                // logLevel: 'debug'
            }
        }
    },
    chainWebpack: config => {
        if (process.env.NODE_ENV === 'production') {
            // 为生产环境修改配置...
            config.mode = 'production'
            // 发行或运行时启用了压缩时会生效
            config.optimization.minimizer('terser').tap((args) => {
                const compress = args[0].terserOptions.compress
                // 非 App 平台移除 console 代码(包含所有 console 方法，如 log,debug,info...)
                compress.drop_console = true
                compress.pure_funcs = [
					'__f__', // App 平台 vue 移除日志代码
					// 'console.debug' // 可移除指定的 console 方法
				]
				return args
			});
			/*
			"npm install compression-webpack-plugin@3.0.0 --save-dev",
			解决js文件过大，导致首页加载很慢问题
			*/
			config.plugin('CompressionPlugin').use(
				new CompressionWebpackPlugin({
					test: /\.(js|css)$/,
					threshold: 10240, // 超过10kb的文件就压缩
					deleteOriginalAssets: false, // 不删除源文件
					minRatio: 0.8,
					exclude: /node_modules/
				})
			);
		}
	},
	configureWebpack: {
		plugins: [
			new webpack.DefinePlugin({
				ROUTES: webpack.DefinePlugin.runtimeValue(() => {
					const tfPages = new TransformPages({
						includes: ['path', 'name', 'aliasPath', 'children', 'meta']
					});
					return JSON.stringify(tfPages.routes)
				}, true)
			})
		]
	}
}
